"""整理字符串、列表、字典、元组、集合可变和不可变的数据结构，背

1、定义两个字典，键值任意，把两个字典合并在一起，组成一个新字典
2、定义两个列表，将两个列表合并
3、定义一个集合，包含2，3，4，5，7元素，判断元素12在不在集合中，用分支语句打印不同结果； 判断元素3在不在集合中，打印结果
4、让用户输入账号密码，去除账号密码前后无用的空格，然后判断账号是不是admin，密码是不是123456，如果都相同显示登录成功，否则显示登录失败
5、实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
6、用程序计算100以内有多少个3的整数倍数字
7、实现判断用户输入的内容中是否有c,要求最多输入三次
8、让用户输入个人基本信息，包括 姓名、电话、住址、年龄，通过字典保存用户的数据信息，当用户输入q的时候，结束输入
结束输入后，打印显示全部的用户名，并要求选择一个名称
然后打印输出这个用户的全部信息，输出信息的格式：用户 xxx，电话是xxx，地址是xxx，年龄是xxx
9、图书管理系统
支持选项，选择功能
图书管理系统：
1.添加图书
2.删除图书
3.修改图书
4.查询图书
5.显示所有图书
6.退出操作
10、预设一个 0~9 之间的整数，让用户猜一猜并输入所猜的数，如果大于预设的数，显示“太大” ；小于预设的数，显示“太小” ，如此循环，直至猜中该数，显示“恭喜！你猜中了！ ”（使用random模块）
11、用户分别从键盘输入4个整数和3个整数组成两个列表list1和list2，将列表list2合并到list1中，并在list1末尾再添加两个数字90和100，然后对list1降序排列，最后输出最终的列表list1
12、最后一个单词的长度
给你一个字符串 s，由若干单词组成，单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
13、编写一个程序，要求用户输入一个字符串，并将其反转输出。
14、编写一个程序，要求用户输入一个整数，判断它是奇数还是偶数，并输出结果
15、编写一个程序，计算并输出 1 到 100 之间所有能被 7 整除但不能被 5 整除的数的和
16、输入任意三个数，用if语句编写求出其中最小值的程序
17、两数之和
给定一个整数数组 nums和一个整数目标值 target，请你在该数组中找出 和为目标值 target 的那两个整数，并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
18、listinfo = [133, 88, 24, 33, 232, 44, 11, 44]，取出列表小于100，且为偶数的数
19、从键盘上输入任意一个整数，输出这个整数是几位数
20、定义一个字典包含“name”、“age”两个key，对应的值为“韩梅梅”, 33，
 将“name”对应的value值改为“韩涛”
添加新的键“sex”，值为“男”
 将“age”键值对删除
21、编写程序，定义一个列表，通过索引打印出列表中第2个值，删除列表中的第3值
1. 通过索引打印出列表中第2个值
2. 删除列表中的第3值"""""

"""1、定义两个字典，键值任意，把两个字典合并在一起，组成一个新字典
a={"name":"刘英","age":3,"sex":"女"}
b={"name":"刘星","负债":20,"job":"上市总裁"}
a.update(b)
print(a) #{'name': '刘星', 'age': 3, 'sex': '女', '负债': 20, 'job': '上市总裁'}
"""
"""2、定义两个列表，将两个列表合并
list1 = [11,22,33,44,55,11,22,33]
list2=[4,5,6,7,8,9]
list1.extend(list2)
print(list1)
"""
"""3、定义一个集合，包含2，3，4，5，7元素，判断元素12在不在集合中，用分支语句打印不同结果； 判断元素3在不在集合中，打印结果
a={2,3,4,5,7,13,16,18}
if 12 in a:
    print("12在集合中")
else:
    print("12不在集合中")
    if 3 in a:
        print("3在集合中")
    else:
        print("3不在集合中")
"""

"""4、让用户输入账号密码，去除账号密码前后无用的空格，然后判断账号是不是admin，密码是不是123456，如果都相同显示登录成功，否则显示登录失败
username=input("请输入账户:")
password=input("请输入密码:")
if username == "admin" and password == "123456":
    print("登录成功")
else:
    print("登录失败")
"""

"""5、实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
maxs_logs = 3
mins_log = 0
ok_username = ["seven", "alex"]
ok_password = "123"
while mins_log < maxs_logs:
    username = input("请输入用户名: ")
    password = input("请输入密码: ")
    if username in ok_username and password == ok_password:
        print("登录成功")
        break
    else:
        print("登录失败，请重新输入")
        mins_log += 1
if mins_log == maxs_logs:
    print("登录失败，超过最大尝试次数")
"""

"""6、用程序计算100以内有多少个3的整数倍数字
count = 0
for number in range(1, 101):
    if number % 3 == 0:
        count += 1
print("100以内有", count, "个3的整数倍数字。")
"""

"""7、实现判断用户输入的内容中是否有c,要求最多输入三次
maxs_logs = 3
mins_log = 0
while mins_log < maxs_logs:
    a = input("请输入: ")
    if 'c' in a:
        print("输入的内容里包含c")
        break
    else:
        print("输入的内容里不包含c")
        mins_log += 1
        if mins_log == maxs_logs:
            print("三次输入均不包含字母 'c'")
"""

"""
8、让用户输入个人基本信息，包括 姓名、电话、住址、年龄，通过字典保存用户的数据信息，当用户输入q的时候，结束输入
 结束输入后，打印显示全部的用户名，并要求选择一个名称
然后打印输出这个用户的全部信息，输出信息的格式：用户 xxx，电话是xxx，地址是xxx，年龄是xxx
user_a = {}
while True:
    name = input("请输入姓名（输入'q'结束）: ")
    if name.lower() == 'q':
        break
    phone = input("请输入电话: ")
    address = input("请输入住址: ")
    age = input("请输入年龄: ")
    user_a[name] = {
        'phone': phone,
        'address': address,
        'age': age
    }
print("所有用户名:")
for user_name in user_a.keys():
    print(user_name)
selected_name = input("请选择一个用户名: ")
if selected_name in user_a:
    selected_user = user_a[selected_name]
    print(f"用户 {selected_name}，电话是{selected_user['phone']}，地址是{selected_user['address']}，年龄是{selected_user['age']}")
else:
    print("未找到该用户信息")

"""
"""9、图书管理系统
支持选项，选择功能
图书管理系统：
1.添加图书
2.删除图书
3.修改图书
4.查询图书
5.显示所有图书
6.退出操作
a = {}
while True:
    # 显示菜单
    print("图书管理系统：")
    print("1. 添加图书")
    print("2. 删除图书")
    print("3. 修改图书")
    print("4. 查询图书")
    print("5. 显示所有图书")
    print("6. 退出操作")

    choice  = input("请你输入你要做出的选择:")
    if choice == "1":
        book_id = input("请输入图书id: ")
        book_name = input("请输入图书名称: ")
        a[book_id] = book_name
        print(f"添加的图书id:{book_id},图书名称{book_name}成功")
    elif choice =="2":
        book_id = input("请输入你想删除的图书id:")
        if book_id in a:
            del book_dict[book_id]
            print(f"删除的图书{book_id}成功")
        else:
            print(f"你想删除的图书{book_id}不存在")

    elif choice == "3":
        book_id = input("请输入要修改的图书id: ")
        if book_id in a:
            new_name = input("请输入新的图书名称: ")
            a[book_id] = new_name
            print("图书修改成功！")
        else:
            print("图书不存在，请重新输入。")
    elif choice == "4":
        book_id = input("请输入要查询的图书名称: ")
        if book_id in a:
            print(f"{book_id}名称的是{a[book_id]}")
        else:
            print("图书不存在，请重新输入。")
    elif choice == "5":
        for book in a.items():
            print(f"{book_id}的图书名称是{book_name}")
    elif choice == "6":
        print("感谢使用图书管理系统，再见！")
        break

    else:
        print("无效的选择，请重新输入。")
"""

"""10、预设一个 0~9 之间的整数，让用户猜一猜并输入所猜的数，如果大于预设的数，显示“太大” ；小于预设的数，显示“太小” ，如此循环，直至猜中该数，显示“恭喜！你猜中了！ ”（使用random模块）
import random
sj_number = random.randint(0,9)
while True:
    a = int(input("猜一猜 0 到 9 之间的整数: "))
    if a > sj_number:
        print("太大了！")
    elif a < sj_number:
        print("太小了！")
    else:
        print("恭喜！你猜中了！")
        break  
"""
"""11、用户分别从键盘输入4个整数和3个整数组成两个列表list1和list2，将列表list2合并到list1中，并在list1末尾再添加两个数字90和100，然后对list1降序排列，最后输出最终的列表list1

input_list1 = [int(input("请输入第1个整数: ")),
               int(input("请输入第2个整数: ")),
               int(input("请输入第3个整数: ")),
               int(input("请输入第4个整数: "))]
input_list2 = [int(input("请输入第1个整数: ")),
               int(input("请输入第2个整数: ")),
               int(input("请输入第3个整数: "))]
list1 = input_list1 + input_list2
list1.extend([90, 100])
list1.sort(reverse=True)
print("最终的列表 list1:", list1)
"""

"""12、最后一个单词的长度
给你一个字符串 s，由若干单词组成，单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
str = "hello world"
a = int(str.index("d"))
b = int(str.index(" "))
c= a-b
print(c)
"""



"""13、编写一个程序，要求用户输入一个字符串，并将其反转输出。
user_input1=str(input("请输入一个字符串:"))
print(user_input1[::-1])
"""

"""14、编写一个程序，要求用户输入一个整数，判断它是奇数还是偶数，并输出结果
user_input1=int(input("请输入一个整数: "))
if user_input1 % 2 == 0:
        print(f"{user_input1} 是偶数。")
else:
        print(f"{user_input1} 是奇数。")
"""

"""15、编写一个程序，计算并输出 1 到 100 之间所有能被 7 整除但不能被 5 整除的数的和
sum_a = {}
for number in range(1, 101):
    if number % 7 == 0 and number % 5 != 0:
        sum_a += number
    print("1 到 100 之间所有能被 7 整除但不能被 5 整除的数的和为:", sum_a)
"""

"""16、输入任意三个数，用if语句编写求出其中最小值的程序
number1 = float(input("请输入第一个数: "))
number2 = float(input("请输入第二个数: "))
number3 = float(input("请输入第三个数: "))
min_value = number1
if number2 < min_value:
    min_value = number2
if number3 < min_value:
    min_value = number3
print("输入的三个数中最小的数是:", min_value)
"""

"""17、两数之和
给定一个整数数组 nums和一个整数目标值 target，请你在该数组中找出 和为目标值 target 的那两个整数，并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。"""

"""18、listinfo = [133, 88, 24, 33, 232, 44, 11, 44]，取出列表小于100，且为偶数的数
listinfo = [133, 88, 24, 33, 232, 44, 11, 44]
for a in listinfo:
    if a<100 or a%2==0:
        print(a)
"""

"""19、从键盘上输入任意一个整数，输出这个整数是几位数
user_input=int(input("请输入一个整数: "))
num_length = len(str(user_input))
print(f"{user_input} 是一个 {num_length} 位数。")
"""

"""20、定义一个字典包含“name”、“age”两个key，对应的值为“韩梅梅”, 33，
 将“name”对应的value值改为“韩涛”
添加新的键“sex”，值为“男”
 将“age”键值对删除
a={'name':'韩梅梅','age':33}
a['name']='韩涛'
a.update({'sex':'男'})
b=a.pop('age')
"""

"""21、编写程序，定义一个列表，通过索引打印出列表中第2个值，删除列表中的第3值
1. 通过索引打印出列表中第2个值
2. 删除列表中的第3值

a=[1,2,3,4,5,99,68,12]
print(a.index(2))
del  a[3]
print(a)
"""